Estimation of latent waiting and service times from incomplete event logs

ABSTRACT

Methods and systems for estimating latent service and latent wait times include extracting transition times between activities from a partial event log. Parameters for respective gamma distributions are estimated that characterize latent waiting time and latent service time for each activity. A latent waiting time and latent service time for each activity is estimated based on the estimated parameters using a processor.

BACKGROUND

Technical Field

The present invention relates to process analysis and, more particularly, to estimating waiting and service times from incomplete event logs.

Description of the Related Art

Performance analysis is frequently used in redesigning processes to increase their efficiency. One frequently used type of analysis is calculation of waiting time and service time of process activities from an event log. The average waiting and service times of individual activities and resources enable the redesigner to discover bottlenecks in the process.

Process management tools (e.g., a process aware information system (PAIS)) will record event details. For example, a PAIS may record both start-event and end-event activity for a variety of events. This makes calculating service time and waiting time trivial, simply by subtracting event timestamps.

However, it is not always possible to access both start- and end-event information. In many legacy event logs, only one of the two types of information will be recorded. One example of such an event log is in, for example, webserver logs, which record only the start time of an event and do not record the time at which the event completes.

In such a case, the only information available is the transition time from one event to the next (i.e., the time between respective start-event timestamps or respective end-event timestamps). While more modern process managers will handle both, some customers may wish to have analyses of process timing to improve their existing, legacy systems.

SUMMARY

A method for estimating latent service and latent wait times includes extracting transition times between activities from a partial event log. Parameters for respective gamma distributions are estimated that characterize latent waiting time and latent service time for each activity. A latent waiting time and latent service time for each activity is estimated based on the estimated parameters using a processor.

A method for estimating latent service and latent wait times includes extracting transition times between activities from a partial event log that comprises only one of start-event information and end-event information for each activity. Parameters for respective gamma distributions are estimated that characterize latent waiting time and latent service time for each activity. Estimating the parameters includes determining a likelihood that the estimated parameters would reproduce the partial event log and iterating the estimation of parameters and the determination of the likelihood until the likelihood converges. A latent waiting time and latent service time for each activity is estimated based on the estimated parameters using a processor.

A system for estimating latent service and latent wait times includes a transition time module configured to extract transition times between activities from a partial event log. A parameter module is configured to estimate parameters for respective gamma distributions that characterize latent waiting time and latent service time for each activity. A latent time module having a processor is configured to estimate a latent waiting time and latent service time for each activity based on the estimated parameters.

These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:

FIG. 1 is a diagram showing a timeline of activity execution in accordance with the present principles;

FIG. 2 is a diagram showing a timeline of activity execution in accordance with the present principles;

FIG. 3 is a block/flow diagram of a method for optimizing a process in accordance with the present principles;

FIG. 4 is a block/flow diagram of a method for extracting transition times from a partial event log in accordance with the present principles;

FIG. 5 is a block/flow diagram of a method for determining latent service and waiting times in accordance with the present principles; and

FIG. 6 is a block diagram of a latent time estimation system in accordance with the present principles.

DETAILED DESCRIPTION

Embodiments of the present principle access transition times between events from an incomplete log that lacks either event start times or event end times. The present embodiments characterize the distribution of time durations as a gamma distribution and estimates a latent waiting time and a latent service time for each transition.

Referring now to FIG. 1, an exemplary event timeline 100 is shown. This timeline 100 represents an ideal set of circumstances, where the top 102 of the timeline shows events that are observable event and performance indicators, the bottom 106 of the timeline shows unobservable performance indicators, and the timeline itself 104 shows the recorded events in the log. A series of activities (A, B, C) are recorded on the timeline 104, with each having an “assign” event 108, marking the point in time when a request for the activity was received, a “start” event 110, marking the point in time when the event actually begins, and a “complete” event 112, marking the point in time when the event completes.

Because so much information was collected, a time for the transitions between activities and a time for the duration of an activity can be observed on the top portion of the timeline 102. The duration of an activity in this view includes a waiting time, representing the time that expires between the request 108 for the activity and the time the activity begins 110. The duration also includes a service time, which represents the time from the start of the activity 110 to the completion of the activity. The duration is then followed by a transition period, until the next activity is assigned.

While the events recorded on the timeline 104 are available, they may not represent the true duration of the event. In addition to the observable times, there may be a latent waiting time 114 for the activity and a latent service time 116 for the activity. Latent waiting time 114 is defined as the time period from passing control to the activity to the first event of the activity. Latent service time 116 is defined as the time period from the last event of the activity to passing control to another activity. In addition to the observed waiting and service times, these times form the actual time consumed by an activity. This allows the transition time to be split between the source and destination activities.

Referring now to FIG. 2, a second timeline 200 is shown. Rather than keeping accurate timing information for the assignment, start, and stop of the events, in this second timeline 200 only the starting times 202 are recorded. As a result, all that is observable is the transition time 204 from one start time 202 to the next. The transition time is again divided into a latent waiting time 206 and a latent service time 208. The present embodiments use a gamma distribution to estimate the latent waiting time 206 and latent service time 208.

Referring now to FIG. 3, a method for finding the latent waiting and service times is shown. Block 302 extracts transition times between activities from an event log. As noted above, the event log is incomplete and shows only start-events or only end-events. Block 304 then estimates the latent times from the transition times using, for example, a gamma distribution. This information can then be used to optimize the process, providing improvements for future activities to reduce latent waiting time and latent service time. For example, if the waiting time of an activity is too long, then additional resources may be provisioned to reduce the length of the queue. If the service time of the activity is too long, it may be possible to simplify the task involved to reduce the amount of time needed to complete it.

Referring now to FIG. 4, a method for extracting the transition times between activities is shown. Block 402 selects a new event from an event log. As noted above, the event log includes only one of start-events and end-events, signaling the beginning or end of an activity, respectively. Other events may be present in the event log, however, so the present embodiments cycle through the events until the activity changes (i.e., until a start-event or end-event for a new activity comes up). Thus, if the activity for the event selected by block 402 is the same as the activity for the previous event at block 404, block 402 selects a new event. If not, block 406 finds the transition time from the previous activity change to the present event.

The present embodiments use a gamma distribution model to determine latent waiting times and latent service times from the transition times. The gamma distribution is a sum of exponential distributions, which in term is used to model a time duration of a single activity and lifetime. An exponential distribution alone cannot fit actual duration data for most practical activities because the actual activities are composed of several small activities. For example, underwriting in insurance includes reviewing an incoming application, measuring risk exposure, and determining the premium. By combining exponential distributions, the gamma distribution has enough flexibility to model the time duration of such complex activities.

A gamma distribution is a two-parameter family of continuous probability distributions. Its probability density function over a probabilistic variable X>0 is defined by:

${p\left( {{X;l},a} \right)} = {\frac{X^{l - 1}}{{\Gamma (l)}\alpha^{l}}e^{\frac{X}{\alpha}}}$

with a shape parameter l>0 and a scale parameter α>0, where Γ(x) is the gamma function Γ(x)=∫₀ ^(∞)s^(x-1)e^(−s)ds. X˜Gamma(l, α) if a probabilistic variable X has this distribution.

Given an activity transition time log TL, as generated by FIG. 4 above, the random variable of latent service time of a source activity a is S_(a) and the random variable of latent waiting time of a destination activity b is W_(b). It is assumed that S_(a) follows a probabilistic distribution Gamma(l_(a), α_(a)), where l_(a)>0, α_(a)>0, and that W_(b) follows a probabilistic distribution Gamma(m_(b), β_(b)), where m_(b>0), β_(b)>0. This assumption is based on the Markov property, such that the probability of time is independent from past events of the process instance, whereas several process mining methods use past events. Since latent variable estimation imposes complex modeling and mathematics, the problem definition is simplified herein.

The transition time from source activity a to destination activity b is T_(ab). Based on the above assumption, T_(ab)=S_(a)+W_(b). The probabilistic density function of T_(ab) can be obtained from a convolutional integration of p(S_(a); l_(a), α_(a))*p(W; m_(b), β_(b)) as:

$\begin{matrix} {{p\left( {{T_{ab};l_{a}},\alpha_{a},m_{b},\beta_{b}} \right)} = {\int_{0}^{T_{ab}}{{p\left( {{S_{a};l_{a}},\alpha_{a}} \right)}{p\left( {{{T_{ab} - S_{a}};m_{b}},\beta_{b}} \right)}\ {dS}_{a}}}} \\ {= {\frac{e^{\frac{(T_{ab})}{\beta_{b}}}}{{\Gamma \left( l_{a} \right)}{\Gamma \left( m_{b} \right)}\alpha_{a}^{\; l_{a}}\beta_{b}^{m_{b}}}{f\left( {T_{ab},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}} \end{matrix}$ where   ${f\left( {t,l,\alpha,m,\beta} \right)} = {\int_{0}^{t}{{z^{l - 1}\left( {t - z} \right)}^{m - 1}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}z}\ {dz}}}$

In one example, the latent time is not shared with other transition time. In that case, a single gamma distribution cannot be decomposed into two gamma distributions because the distribution has the reproductive property. For example, if X˜Gamma(2, θ) and Y˜Gamma(3, θ), then X+Y follows Gamma(5, θ).

It can be assumed that the transition time from a source activity to different destination activities shares the same latent service time at the transition source. In addition, transition times from different sources to one destination share the same latent waiting time at that transition destination. The latent services can be estimated if the inverse problem is solved.

Given an activity transition time log TL, the average latent waiting time w _(a), the average latent service time s _(a), and the average consuming time c _(a), of the activity a, the first step is an inference of model parameters of p(T_(ab); l_(a), α_(a), m_(b), β_(b)). In these embodiments, l_(a) is a shape parameter, α_(a) is a scale parameter of a gamma distribution of latent service time of a, m_(a) is a shape parameter, and β_(a) is a scale parameter of a gamma distribution of latent waiting time for the activity a. Estimators {circumflex over (l)}_(a), {circumflex over (α)}_(a), {circumflex over (m)}_(b), and {circumflex over (β)}_(a) for the activity a are obtained and the estimator of s _(a) is then obtained as {circumflex over (l)}_(a) α _(a), the estimator of w _(a) can be obtained as {circumflex over (m)}_(b){circumflex over (β)}_(a), and the estimator of c _(a) can be obtained as the ŝ _(a)+duration_(a)+ŵ _(a). An average time is defined as a triplet AT=(s, w, c), where s is a set of estimated average latent service times, w is a set of estimated average latent waiting times, and c is a set of estimated average consuming time.

Maximum likelihood estimation (MLE) is used to find estimators that make the observed data most probable. Assuming the latent waiting time and the latent service time follow a gamma distribution, the log likelihood function becomes:

$\begin{matrix} {{\log \mspace{11mu} L} = {\sum\limits_{{({a,b})} \in {Trans}}{\log \mspace{11mu} {p\left( {{t_{abk};l_{i}},\alpha_{i},m_{j},\beta_{j}} \right)}}}} \\ {= {\sum\limits_{{({a,b})} \in {Trans}}^{\;}{\sum\limits_{k = 1}^{n_{ab}}{\log \frac{e^{\frac{t_{abk}}{\beta_{b}}}}{{\Gamma \left( l_{a} \right)}{\Gamma \left( m_{b} \right)}\alpha_{a}^{l_{a}}\beta_{b}^{m_{b}}}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}}} \end{matrix}$

where t _(abk) is the k^(th) observed transition time from the source activity a to the destination activity b and n_(ab) is the number of observed transition times from a to b. The parameters that give the maximization cannot be solved explicitly with equation transformations because the latent probabilistic model makes the log likelihood function too complex. In this formulation, “Trans” is the set of transitions between activities.

Expectation maximization (EM) is used to find maximum likelihood solutions for probabilistic models having latent variables. In this case, the observed variables are T_(ab) and the latent variables are S_(a). The latent waiting time is removed from consideration by the relationship W_(b)=T_(ab)−S_(a). EM maximizes the likelihood iteratively with the expectation and maximization steps.

In the expectation step a distribution q_(a)(S_(a)) is defined over the latent variable S_(a). For any choice of q_(a)(S_(a)), the log likelihood function is decomposed to:

log   p(t_(abk); l_(i), α_(i), m_(j), β_(j)) = ℒ(q_(a)(S_(a)), t_(abk)) + D_(KL)(q_(a)(S_(a))p(S_(a)t_(abk))) where   $\begin{matrix} {{\mathcal{L}\left( {{q_{a}\left( S_{a} \right)},t_{abk}} \right)} = {\int_{0}^{\; t_{abk}}{{q_{a}\left( S_{a} \right)}\log \frac{p\left( {t_{abk},{S_{a};l_{a}},\alpha_{a},m_{b},\beta_{b}} \right)}{q_{a}\left( S_{a} \right)}\ {dS}_{a}}}} \\ {D_{KL}\left( {{{q_{a}\left( S_{a} \right)}\left. {{p\left( S_{a} \right.}t_{abk}} \right)} = {\int_{0}^{\; t_{abk}}{{q_{a}\left( S_{a} \right)}\log \frac{q_{a}\left( S_{a} \right)}{p\left( {t_{abk},{S_{a};l_{a}},\alpha_{a},m_{b},\beta_{b}} \right)}\ {dS}_{a}}}} \right.} \end{matrix}$

Choosing p(t_(abk), S_(a); l_(a), α_(a), m_(b), β_(b))g as q_(a)(S_(a)), the Kullback-Leibler divergence goes to zero and L(q_(a)(S_(a)), t_(abk)) equals the log likelihood function.

In the maximization step, the parameters that maximize L(q_(a)(S_(a)), t_(abk)) are found, holding q_(a)(S_(a))=p(S_(a)|t_(abk); l_(a), α_(a), m_(b), β_(b)) are determined. The updated parameters are l′_(a), α′_(a), m′_(a), and β′_(a). By vanishing a constant part −∫₀ ^(t) ^(abk) q_(a)(S_(a))log q_(a)(S_(a))dS_(a) from L(q_(a)(S_(a)), t_(abk)), maximizing L(q_(a)(S_(a)), t_(abk)) is equivalent to maximizing:

$Q = {\sum\limits_{{({a,b})} \in {Trans}}{\sum\limits_{k = 1}^{n_{ab}}{\int_{0}^{\; t_{abk}}{{p\left( {{{S_{a}t_{abk}};l_{a}},\alpha_{a},m_{b},\beta_{b}} \right)}\log \; {p\left( {t_{abk},{S_{a};l_{a}^{\prime}},\alpha_{a}^{\prime},m_{b}^{\prime},\beta_{b}^{\prime}} \right)}{dS}_{a}}}}}$

By substituting the joint probability

${p\left( {T,{S;l},\alpha,m,\beta} \right)} = {{{p\left( {{S;l},\alpha} \right)}{p\left( {{{T - S};m},\beta} \right)}} = {\frac{{S^{l - 1}\left( {T - s} \right)}^{m - 1}}{{\Gamma (l)}{\Gamma (m)}\alpha^{l}\beta^{m}}e^{- \frac{T}{\beta}}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}S}}}$

and the posterior probability

${p\left( {{{ST};l},\alpha,m,\beta} \right)} = {\frac{p\left( {S,T} \right)}{p(T)} = {\frac{{S^{l - 1}\left( {T - s} \right)}^{m - 1}}{f\left( {T,l,\alpha,m,\beta} \right)}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}S}}}$

into Q produces:

$Q = {\sum\limits_{{({a,b})} \in {Trans}}{\sum\limits_{k = 1}^{n_{ab}}\left\{ {{- \frac{t_{abk}}{\beta_{b}^{\prime}}} - {\log \; {\Gamma \left( l_{a}^{\prime} \right)}} - {\log \; {\Gamma \left( m_{b}^{\prime} \right)}} - {l_{a}^{\prime}\log \; \alpha_{a\;}^{\prime}} - {m_{b}^{\prime}\log \; \beta_{b}^{\prime}} + {\left( {\frac{1}{\beta_{b}^{\prime}} - \frac{1}{\alpha_{a}^{\prime}}} \right)\left( \frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l,\alpha_{a},m_{b},\beta_{b}} \right)} \right)} + {\left( {l_{a}^{\prime} - 1} \right)\left( \frac{g\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)} \right)} + {\left( {m_{b}^{\prime} - 1} \right)\left( \frac{h\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)} \right)}} \right\}}}$      where $\mspace{79mu} {{g\left( {t,l,\alpha,m,\beta} \right)} = {\int_{0}^{t}{{z^{l - 1}\left( {t - z} \right)}^{m - 1}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}z}\log \; {zdz}}}}$ $\mspace{79mu} {{h\left( {t,l,\alpha,m,\beta} \right)} = {\int_{0}^{t}{{z^{l - 1}\left( {t - z} \right)}^{m - 1}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}z}{\log \left( {t - z} \right)}{dz}}}}$

The optimal point that gives the maximal value of Q satisfies:

$\frac{\partial Q}{\partial\alpha_{a}^{\prime}} = {{{{- \frac{l_{a}^{\prime}}{\alpha_{a}^{\prime}}}{\sum\limits_{b \in A_{d}}n_{ab}}} + {\frac{1}{\alpha_{a}^{\prime 2}}{\sum\limits_{b \in A_{d}}{\sum\limits_{k = 1}^{n_{ab}}\frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l,\alpha_{a},m_{b},\beta_{b}} \right)}}}}} = 0}$ $\frac{\partial Q}{\partial\beta_{a}^{\prime}} = {{{{- \frac{l_{a}^{\prime}}{\beta_{a}^{\prime}}}{\sum\limits_{a \in A_{s}}n_{ab}}} + {\frac{1}{\beta_{a}^{\prime 2}}{\sum\limits_{a \in A_{s}}{\sum\limits_{k = 1}^{n_{ab}}\left( {t_{abk} - \frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l,\alpha_{a},m_{b},\beta_{b}} \right)}} \right)}}}} = 0}$ $\frac{\partial Q}{\partial l_{a}^{\prime}} = {{{{- \left( {{\psi \left( l_{a}^{\prime} \right)} - {\log \; \alpha_{a}^{\prime}}} \right)}{\sum\limits_{b \in A_{b}}n_{ab}}} + {\sum\limits_{b \in A_{d}}{\sum\limits_{k = 1}^{n_{ab}}\frac{g\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}} = 0}$ $\frac{\partial Q}{\partial m_{a}^{\prime}} = {{{{- \left( {{\psi \left( m_{b}^{\prime} \right)} - {\log \; \beta_{b}^{\prime}}} \right)}{\sum\limits_{a \in A_{s}}n_{ab}}} + {\sum\limits_{a \in A_{s}}{\sum\limits_{k = 1}^{n_{ab}}\frac{h\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}} = 0}$

where A_(s) is the set of source activities, A_(d) is the set of destination activities, and ψ(x) is the logarithmic derivative of the gamma function (known as the digamma function):

${\psi (x)} = {{\frac{d}{dx}\ln \; {\Gamma (x)}} = {\frac{d\; {\Gamma (x)}}{dx}/{\Gamma (x)}}}$

By substituting

$\frac{\partial Q}{\partial\alpha_{a}^{\prime}}$

into the above equation for

$\frac{\partial Q}{\partial l_{a}^{\prime}}\mspace{14mu} {and}\mspace{14mu} \frac{\partial Q}{\partial\beta_{a}^{\prime}}$

into

$\frac{\partial Q}{\partial m_{a}^{\prime}},$

the following nonlinear equations are produced:

${{\psi \left( l_{a}^{\prime} \right)} - {\log \left( l_{a}^{\prime} \right)} - {\frac{1}{\sum_{b \in A_{d}}n_{ab}}{\sum\limits_{b \in A_{d}}{\sum\limits_{k = 1}^{n_{ab}}\frac{g\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}} + {\log \left( {\frac{1}{\sum_{b \in A_{d}}n_{ab}}{\sum\limits_{b \in A_{d}}{\sum\limits_{k = 1}^{n_{ab}}\frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}} \right)}} = 0$ ${{\psi \left( m_{b}^{\prime} \right)} - {\log \left( m_{b}^{\prime} \right)} - {\frac{1}{\sum_{a \in A_{s}}n_{ab}}{\sum\limits_{a \in A_{s}}{\sum\limits_{k = 1}^{n_{ab}}\frac{h\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}} + {\log \left( {\frac{1}{\sum_{a \in A_{s}}n_{ab}}{\sum\limits_{a \in A_{s}}{\sum\limits_{k = 1}^{n_{ab}}\left( {t_{abk} - \frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}} \right)}}} \right)}} = 0$

The optimal parameters, l′_(a) and m′_(b), are given by solving these nonlinear, one-variable equations. By substituting the parameters back into

${\frac{\partial Q}{\partial\alpha_{a}^{\prime}}\mspace{14mu} {and}\mspace{14mu} \frac{\partial Q}{\partial\beta_{a}^{\prime}}},$

the optimal parameters α′_(a) and β′_(b) are produced:

$\alpha_{a}^{\prime} = {\frac{1}{l_{a}^{\prime}{\sum_{b \in A_{d}}n_{ab}}}{\sum\limits_{b \in A_{d}}{\sum\limits_{k = 1}^{n_{ab}}\frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}}$ $\beta_{b}^{\prime} = {\frac{1}{m_{b}^{\prime}{\sum_{a \in A_{s}}n_{ab}}}{\sum\limits_{a \in s}{\sum\limits_{k = 1}^{n_{ab}}\left( {t_{abk} - \frac{f\left( {t_{abk},{l_{a} + 1},\alpha_{a},m_{b},\beta_{b}} \right)}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}} \right)}}}$

The latent service time is then calculated as s _(a)=l_(a)α_(a), the latent waiting time is calculated as w _(a)=m_(a)β_(a), and the consuming time is calculated as c _(a)=lw_(a)+duration_(a)+ls_(a).

Referring now to FIG. 5, a method for extracting the latent times from the transition times is shown. The present embodiment iteratively considers transition times from source activities to destination activities until a log likelihood function converges. Block 501 initializes the parameters, with the likelihood L being set to −∞, and each of the parameters l_(a), α_(a), m_(b), and β_(b) each being set to (Σ_((a,b)εTrans)Σ_(k=0) ^(n) ^(ab) t_(abk))/(Σ_((a,b)εTrans)n_(ab)).

Block 502 determines l_(a) for each source activity, block 504 determines α_(a) for each source activity, block 506 determines m_(b) for each destination activity, and block 508 determines β_(b) for each destination activity. Using these parameters, a likelihood L is calculated as described above in block 510. Block 512 determines whether the likelihood has converged. If not, processing returns to block 502. If so, block 514 determines the latent service time and latent waiting time using the determined parameters. As the method iterates, the parameters from each iteration are used in the next iteration to form the basis for the next likelihood calculation. Eventually the likelihood will stabilize, as determined by a difference between two consecutive likelihoods being within a threshold value of one another.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Reference in the specification to “one embodiment” or “an embodiment” of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.

It is to be appreciated that the use of any of the following “/”, “and/or”, and “at least one of”, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.

Referring now to FIG. 6, a system 600 for estimating latent service and waiting times is shown. The system 600 includes a hardware processor 602 and memory 604. The system 600 also includes a set of functional modules. These modules may be implemented as software that is stored in memory 604 and executed on the processor 602 or may, alternatively, be implemented as one or more discrete hardware components in the form of, e.g., application specific integrated chips or field programmable gate arrays.

The memory stores an event log 606 that records partial event information in the memory 604 of an executed activity. For example, the event log 606 may record only start-event information or end-event information. Based on the event log, a transition time module 608 determines a transition time between different activities. This creates a transition time log. A parameter module 610 determines a set of latent time estimation parameters based on the transition time log and latent time module 612 produces an estimate of the latent waiting time and latent service time for each activity.

Having described preferred embodiments of estimation of latent waiting and service times from incomplete event logs (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments disclosed which are within the scope of the invention as outlined by the appended claims. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims. 

1. A method for estimating latent service and latent wait times, comprising: extracting transition times between activities from a partial event log; estimating parameters for respective gamma distributions that characterize latent waiting time and latent service time for each activity; and estimating a latent waiting time and latent service time for each activity based on the estimated parameters using a processor.
 2. The method of claim 1, further comprising determining a likelihood that the estimated parameters would reproduce the partial event log.
 3. The method of claim 2, further comprising iterating the estimation of parameters and the determination of the likelihood until the likelihood converges.
 4. The method of claim 3, wherein the iteration ends when a likelihood from a previous iteration is within a threshold value of a likelihood from a current iteration.
 5. The method of claim 2, wherein the likelihood is determined by: $\sum\limits_{{({a,b})} \in {Trans}}{\sum\limits_{k = 1}^{n_{ab}}{\log \frac{e^{- \frac{t_{\alpha \; {bk}}}{\beta_{b}}}}{{\Gamma \left( l_{a} \right)}{\Gamma \left( m_{b} \right)}\alpha_{a}^{l_{a}}\beta_{b}^{m_{b}}}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}$ wherein a is a source activity, b is a destination activity, n_(ab) is a number of observed transition times from a to b, t_(abk) is the k^(th) transition time from a to b, l_(a), α_(a), m_(b), and β_(b) are parameters of the gamma function Γ(x), and ${f\left( {t,l,\alpha,m,\beta} \right)} = {\int_{0}^{t}{{z^{l - 1}\left( {t - z} \right)}^{m - 1}e^{{({\frac{1}{\beta} - \frac{1}{\alpha}})}z}{{dz}.}}}$
 6. The method of claim 1, wherein the partial event log comprises only one of start-event information and end-event information for each activity.
 7. The method of claim 1, wherein extracting transition times between activities comprises: determining a first event at which a source activity is first recorded in the partial event log; and determining a second event at which a destination activity is first recorded in the partial event log, wherein the transition time between the source activity and the destination activity is a difference in time between the first event and the second event.
 8. The method of claim 1, wherein the latent service time is estimated as: s _(a)=l_(a)α_(a) wherein a is an activity, l_(a) is a shape parameter of a gamma distribution for the activity, and α_(a) is a scale parameter of the gamma distribution for the activity.
 9. The method of claim 1, wherein the latent waiting time is estimated as: w _(a)=m_(a)β_(a) wherein a is an activity, m_(a) is a shape parameter of a gamma distribution for the activity, and β_(a) is a scale parameter of the gamma distribution for the activity.
 10. A computer readable storage medium comprising a computer readable program for estimating latent service and latent wait times, wherein the computer readable program when executed on a computer causes the computer to perform the steps of claim
 1. 11. A method for estimating latent service and latent wait times, comprising: extracting transition times between activities from a partial event log that comprises only one of start-event information and end-event information for each activity; estimating parameters for respective gamma distributions that characterize latent waiting time and latent service time for each activity, comprising: determining a likelihood that the estimated parameters would reproduce the partial event log; and iterating the estimation of parameters and the determination of the likelihood until the likelihood converges; and estimating a latent waiting time and latent service time for each activity based on the estimated parameters using a processor.
 12. A system for estimating latent service and latent wait times, comprising: a transition time module configured to extract transition times between activities from a partial event log; a parameter module configured to estimate parameters for respective gamma distributions that characterize latent waiting time and latent service time for each activity; and a latent time module comprising a processor configured to estimate a latent waiting time and latent service time for each activity based on the estimated parameters.
 13. The system of claim 12, wherein the parameter module is further configured to determine a likelihood that the estimated parameters would reproduce the partial event log.
 14. The system of claim 13, wherein the parameter module is further configured to iterate the estimation of parameters and the determination of the likelihood until the likelihood converges.
 15. The system of claim 14, wherein the parameter module is further configured to halt iteration when a likelihood from a previous iteration is within a threshold value of a likelihood from a current iteration.
 16. The system of claim 13, wherein the likelihood is determined by: $\sum\limits_{{({a,b})} \in {Trans}}{\sum\limits_{k = 1}^{n_{ab}}{\log \frac{e^{- \frac{t_{\alpha \; {bk}}}{\beta_{b}}}}{{\Gamma \left( l_{a} \right)}{\Gamma \left( m_{b} \right)}\alpha_{a}^{l_{a}}\beta_{b}^{m_{b}}}{f\left( {t_{abk},l_{a},\alpha_{a},m_{b},\beta_{b}} \right)}}}$ wherein a is a source activity, b is a destination activity, n_(ab) is a number of observed transition times from a to b, t_(abk) is the k^(th) transition time from a to b, l_(a), α_(a), m_(b), and β_(b) are parameters of the gamma function Γ(x), and ${f\left( {t,l,\alpha,m,\beta} \right)} = {\int_{0}^{t}{{z^{l - 1}\left( {t - z} \right)}^{m - 1}e^{({\frac{1}{\beta} - \frac{1}{\alpha}})}{{dz}.}}}$
 17. The system of claim 12, wherein the partial event log comprises only one of start-event information and end-event information for each activity.
 18. The system of claim 12, wherein the transition time module is further configured to determine a first event at which a source activity is first recorded in the partial event log and to determine a second event at which a destination activity is first recorded in the partial event log, wherein the transition time between the source activity and the destination activity is a difference in time between the first event and the second event.
 19. The system of claim 12, wherein the latent service time is estimated as: s _(a)=l_(a)α_(a) wherein a is an activity, l_(a) is a shape parameter of a gamma distribution for the activity, and α_(a) is a scale parameter of the gamma distribution for the activity.
 20. The system of claim 12, wherein the latent waiting time is estimated as: w _(a)=m_(a)β_(a) wherein a is an activity, m_(a) is a shape parameter of a gamma distribution for the activity, and β_(a) is a scale parameter of the gamma distribution for the activity. 